The present invention relates to a method and system for transmitting data packets over an asymmetrical digital subscriber line. More particularly, the present invention relates to a method and system for discarding and regenerating transmission control protocol (TCP) acknowledgment packets transmitted over an asymmetrical digital subscriber line (ADSL) to increase the data transmission rate.
Digital subscriber line (DSL) technology was developed for use as a transmission medium for the Integrated Services Digital Network (ISDN) basic rate access channel. Asymmetric DSL (ADSL) offers a variety of Internet access speeds over a single twisted pair. Therefore, ADSL holds the highest potential in the DSL family to offer inexpensive, broadband access to homes and offices in the near term. Presently, the primary application for ADSL is Internet traffic employing TCP. A very high percentage of Internet traffic is TCP because it is robust in wide variety of environments.
ADSL provides significant increases in bandwidth over existing copper lines using the traditional duplex POTS channels, occupying the frequency band between 300 Hz and 4 KHz. ADSL provides a forward transmission channel of 1.5-8 Mbps, occupying the frequency band of 100 KHz-500 KHz, and a reverse transmission channel of 64-786 Kbps, occupying the frequency band of 10 KHz to 50 KHz. ADSL has bandwidth asymmetry rather than latency asymmetry since the propagation delay is quite negligible. An ADSL line is for exclusive use of the subscriber, with no contention for bandwidth on the local loop.
The asymmetric nature of ADSL adversely affects the performance of TCP because TCP throughput is regulated and limited by the flow of acknowledgments (referred to as the xe2x80x9cACK clockxe2x80x9d) generated by the receiver in response to received data packets. In particular, TCP steady data transmission is dependent upon acknowledgment packets (ACKs) having the same time spacing all the way back to sender. Once the ACKs reach the sender, the data packets are then clocked out with the same spacing. With ADSL, bandwidth asymmetry affects the performance of TCP because it relies on timely feedback from the receiver to make steady progress and fully utilize the available bandwidth in the forward direction. Therefore, any disruption in the feedback process impairs the performance of the forward direction data transfer. Further, a low bandwidth acknowledgement path could significantly slow the growth of the TCP window at the sender side, and make the data transmission speeds independent of the link rate.
As discussed in xe2x80x9cWindow-based Error Recovery and Flow Control With a Slow Acknowledgment Channel: A Study of TCP/IP Performancexe2x80x9d, Proceedings of INFOCOM 1997, April 1997 by T.V. Lakshman et al. (Lakshman), the impact of asymmetry on TCP/IP performance can be characterized using an index called normalized bandwidth ratio (k) which is the ratio of raw bandwidths on both directions to the ratio of packet sizes in both directions. When k is greater than one, the TCP throughput on the forward channel is restricted to a maximum of (forward channel bandwidth)/k. In other words, if the reverse channel is saturated at k acknowledgements/second without any acknowledgement suppression, the forward channel can send at a rate of k packets per second (if the window is constant), or else it is 2k packets per second (assuming two packets are sent for every ACK). This can be generalized into a model which is called the AMP model and can be used to guide the study of both unidirectional and bi-directional transfers. Other factors like bi-directional traffic (e.g., downloading a web page while sending an email) or protocol overhead (e.g., PPPoE, PPTP, L2TP, ATM, etc.) will increase k and further aggravate the asymmetry problem.
It has been shown in xe2x80x9cThe Effects of Asymmetry on TCP Performancexe2x80x9d, ACM Mobile Networks and Application Journal, by Balakrishnan et al. (to appear) and in U.S. Pat. No. 5,5793,768 (Keshav), that performance can be substantially increased by making two key changes: simply suppressing acknowledgements on the reverse channel (ACK-filtering), and regenerating them after the reverse link has been traversed (ACK-reconstruction). Balakrishnan et al. also apply the same techniques to address types of asymmetry other than bandwidth asymmetry, including asymmetry in delay, loss rates, and so on. These techniques can be classified as xe2x80x9cACK-regulation techniquesxe2x80x9d since they are very different from mechanisms like Random Early Drop (RED) because the latter are designed to drop packets, not ACKs, and are used to signal congestion to TCP, not to alleviate asymmetry problems.
Balakrishnan et al. disclose an xe2x80x9cACK-filteringxe2x80x9d method wherein when a new ACK enters the queue device, the queue is checked for previous ACKs from the same flow. If previous ACKs are located in the queue, some or all of the of the previous acknowledgments are cleared or discarded and the latest acknowledgment is enqueued at the tail of the queue. The goal is partially to free some space in the queue for other data packets and ACKs, and partially to compress the ACK information. There is no per-flow state, or multiple queues, but there is overhead in linearly searching the queue for ACKs. Balakrishnan et al. disclose that in some cases ACK filtering alone provides either insufficient compensation for asymmetry or even degrades performance, necessitating the use of other techniques like ACK congestion control (ACC), which involves TCP modification, and/or ACKs-first (priority) scheduling for compensation. This is because of the delays in sending out ACK information which might interact with timeouts.
Keshav discloses an xe2x80x9cACK-collapsingxe2x80x9d method wherein all ACKs are enqueued, but at the transmission opportunity, the ACK received latest in time is sent and all other ACKs in the queue are dropped. Several ways of implementing this idea are possible (e.g., using separate ACK queues, or queueing ACKs in a LIFO manner, or with a single queue, searching the queue for the latest ACK when there is a transmission opportunity for the connection).
FIG. 1 shows a schematic block diagram of a conventional TCP network comprising an ADSL link 3 which is terminated on either end by a remote end ADSL transceiver unit (ATU-R) device 2 located at a customer premises (e.g., a modem) and a central end ADSL transceiver unit (ATU-C) device 4 located at a telephone company central office. The ADSL link 3 has a bandwidth of 8 Mbps in the forward link, and 64 Kbps to 784 Kbps in the reverse link. The ATU-C device 4 functions are assumed to be implemented inside a DSL access multiplexer (DSLAM). Data packets are transmitted from a TCP, data source, such as the Internet 6, using a network device or router 5. The router 5 transmits the data packets to the ATU-C device (DSLAM) 30 over a 155 Mbps link. The ATU-R device 2 is connected to a TCP destination or computer 1 via a 10 Mbps switched Ethernet link. The interface to the computer 1 is often though the point-to-point protocol over Ethernet (PPPoE) standard which allows the leveraging of Ethernet boards which may be pre-installed in computers. Further, multiple computers 1 may be connected through the Ethernet to the ATU-R device 40. In the case of multiple TCP sources (not shown), each source would have a corresponding dedicated 10 Mbps link to the router 5.
Several problems arise due to the constrained reverse link of the ADSL link. An example of this is a user downloading data from a server. To facilitate understanding of the problem, the following discussion is restricted to single source transfer with reference to Table 1 illustrating unidirectional single flow simulation. When the queue buffer size is infinite, the forward throughput is restricted to less then 75% of the full throughput. Further, it can be seen that the effect of asymmetry decreases when the reverse link bandwidth is increased. TCP enters into the congestion avoidance stage in the time limit of 0 to 7 seconds. Moreover, TCP after some time of simulation a point of saturation where the number of data packets generated in response to a single ACK is only two.
Therefore, it is an object of the present invention to solve the problem of forward throughput degradation associated with ADSL reverse link saturation.
In accordance with the present invention, a communication method and system are provided for a TCP network having an ADSL link wherein acknowledgment packets (ACKs) are dropped at one end of an ADSL reverse link and are regenerated at the other end of the ADSL reverse link to increase throughput on both the ADSL forward and reverse links. In particular, when an incoming ACK is received at an ATU-R device located at one end of the ADSL link, the ATU-R device determines whether a prior ACK from the same connection/flow (TCP receiver) is presently stored in a queue awaiting transmission. If a prior ACK packet is not presently stored in the queue, then the incoming ACK packet is stored in the queue for transmission to an ATU-C device located on the other end of the ADSL link. However, if there is a prior ACK packet in the queue, then the information contained in the incoming ACK packet (the ACK packet that is generated latest in time) is stored in a per-flow state table at the ATU-R device and the incoming ACK packet is discarded. When the prior ACK packet is ready to be transmitted to the ATU-C device via the ADSL link, the information contained in the per-connection state table regarding the discarded incoming ACK is copied into the prior ACK so that the prior ACK acknowledges all of the data which the discarded ACK should acknowledge.
Upon receiving the prior ACK, the ATU-C device may regenerate the discarded ACK based on the information contained in the prior ACK such as the number of discarded ACK packets and a connection identifier encoded in a special field within the ACK. The ATU-C device also maintains a per-connection state table which contains information regarding the latest ACK sequence number belonging to each connection. Further, a regeneration factor is introduced which denotes the number of discarded ACKs regenerated in response to one ACK.
The preferred embodiment of the present invention has as its object the suppression of as many ACKs in the reverse channel as possible. In this manner, the preferred embodiment of the present invention takes advantage of the fact that TCP ACKs are cumulative and ensures an acknowledgment packet of a connection in the queue of the ATU-R device. An ACK which leaves the queue acknowledges all the data which the latest ACK coming into queue should acknowledge. Further, per-connection information is maintained so that it guarantees one ACK per-connection to be sent back to the ATU-C device. As a result, a buffer size of only N ACKs is required where N is the number of active flows, assuming separate packet buffers.